<?php
// +----------------------------------------------------------------------
// | motto: 不懈努力，只为遇见更好的自己
// +----------------------------------------------------------------------
// | Copyright: (c) 2020 http://www.slong.ink All rights reserved.
// +----------------------------------------------------------------------
// | Licensed: http://www.apache.org/licenses/LICENSE-2.0
// +----------------------------------------------------------------------
// | Author: slongzhang <slongzhang@qq.com>
// +----------------------------------------------------------------------
// | Date: 2023/10/4
// +----------------------------------------------------------------------
// | Time: 22:07
// +----------------------------------------------------------------------

$startTime = time();

function mkdirs($dir, $mode = 0777) {
	if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;
	if (!mkdirs(dirname($dir), $mode)) return FALSE;
	return @mkdir($dir, $mode);
}

mkdirs(__DIR__ . DIRECTORY_SEPARATOR . 'phar');

$appName = basename(__DIR__); // 获取应用名
// 实例化Phar对象
$phar = new Phar("phar/{$appName}.phar");
// 正则获取需要打包的php文件，参数1:文件路径； 参数2： 正则匹配文件名
$phar->buildFromDirectory(__DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR, '/\.php$/');
// 打包方式
$phar->compressFiles(Phar::GZ);
$phar->stopBuffering();
// 设置启动文件
$phar->setStub($phar->createDefaultStub('Index.php'));
echo '打包完成,耗时: '. (time() - $startTime) . ' S'.PHP_EOL;